﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using MySql.Data.MySqlClient;

namespace MovieSystem.Banco
{
   public class EntFilme
   {
       private int intFimeId = 0;

       public int Id
       {
           get { return intFimeId; }
           set { intFimeId = value; }
       }
       private int intGeneroFilmeId = 0;

       public int GeneroFilmeId
       {
           get { return intGeneroFilmeId; }
           set { intGeneroFilmeId = value; }
       }
       private string strFilmeTitulo = "";

       public string Titulo
       {
           get { return strFilmeTitulo; }
           set { strFilmeTitulo = value; }
       }
       private string strFilmeSinopse = "";

       public string Sinopse
       {
           get { return strFilmeSinopse; }
           set { strFilmeSinopse = value; }
       }
       private string strFilmeDiretor = "";

       public string Diretor
       {
           get { return strFilmeDiretor; }
           set { strFilmeDiretor = value; }
       }
       private string strFilmeElenco = "";

       public string Elenco
       {
           get { return strFilmeElenco; }
           set { strFilmeElenco = value; }
       }
       private int intFilmeClassifIndicativa = 0;

       public int ClassifIndicativa
       {
           get { return intFilmeClassifIndicativa; }
           set { intFilmeClassifIndicativa = value; }
       }
       private int intFilmeDuracao = 0;

       public int Duracao
       {
           get { return intFilmeDuracao; }
           set { intFilmeDuracao = value; }
       }
       private string strFilmeUrlBanner = "";

       public string UrlBanner
       {
           get { return strFilmeUrlBanner; }
           set { strFilmeUrlBanner = value; }
       }
       private string strFilmeUrlTrailer = "";

       public string UrlTrailer
       {
           get { return strFilmeUrlTrailer; }
           set { strFilmeUrlTrailer = value; }
       }
       private string strFilmeTpLegenda = "";

       public string TpLegenda
       {
           get { return strFilmeTpLegenda; }
           set { strFilmeTpLegenda = value; }
       }
       private bool bolFilmeAtivo = true;

       public bool Ativo
       {
           get { return bolFilmeAtivo; }
           set { bolFilmeAtivo = value; }
       }

       public Boolean Inserir()
       {

           int intNumero = 0;
           if (EntConexao.AbrirConexao())
           {
               MySqlCommand commS = new MySqlCommand("Insert into filme " +
                                    "(idgeneroFilme, tituloFilme, sinopseFilme, diretorFilme, elencoFilme, classifIndicativaFilme, duracaoFilme, bannerUrlFilme, trailerUrlFilme, tpLegendaFilme, ativoFilme) values " +
                                    "(" + this.GeneroFilmeId + ", '" + this.Titulo + "', '" + this.Sinopse + "', '" + this.Diretor + "', '" + this.Elenco + "', " + this.ClassifIndicativa + ",  " + this.Duracao + ",'" + this.UrlBanner + "','" + this.UrlTrailer + "','" + this.TpLegenda + "', '" + this.Ativo + "');", EntConexao.bdConn);
               intNumero = commS.ExecuteNonQuery();

               EntConexao.FecharConexao();

           }


           return true;

       }

       public Boolean Alterar()
       {

           int intNumero = 0;
           if (EntConexao.AbrirConexao())
           {
               MySqlCommand commS = new MySqlCommand("update filme set idgeneroFilme= " + this.GeneroFilmeId + ", " +
                                                    " tituloFilme = '" + this.Titulo + "', sinopseFilme = '" + this.Sinopse + "', diretorFilme= '" + this.Diretor + "', elencoFilme= '" + this.Elenco + "', classifIndicativaFilme= " + this.ClassifIndicativa + "," +
                                                    " duracaoFilme= " + this.Duracao + ", bannerUrlFilme = '" + this.UrlBanner + "', trailerUrlFilme= '" + this.UrlTrailer + "', tpLegendaFilme='" + this.TpLegenda + "', ativoFilme = '" + this.Ativo + "'" +
                                                    " where idFilme = " + this.Id + ";", EntConexao.bdConn);
               intNumero = commS.ExecuteNonQuery();

               EntConexao.FecharConexao();

           }


           return true;

       }

       public Boolean Excluir()
       {

           int intNumero = 0;
           if (EntConexao.AbrirConexao())
           {
               MySqlCommand commS = new MySqlCommand("delete from filme where idFilme = " + this.Id + ";", EntConexao.bdConn);
               intNumero = commS.ExecuteNonQuery();

               EntConexao.FecharConexao();

           }


           return true;

       }


       public EntFilme BuscaPorId(string parametro)
       {
           EntFilme oFilme = new EntFilme();

           if (EntConexao.AbrirConexao())
           {
               MySqlCommand commS = new MySqlCommand("SELECT * FROM filme where idFilme =" + parametro + "", EntConexao.bdConn);
               MySqlDataReader reader = commS.ExecuteReader();

               while (reader.Read())
               {
                   oFilme = new EntFilme();
                   oFilme.Id = Convert.ToInt32(reader["idFilme"].ToString());
                   oFilme.Titulo = reader["tituloFilme"].ToString();
                   oFilme.Sinopse = reader["sinopseFilme"].ToString();
                   oFilme.Diretor = reader["diretorFilme"].ToString();
                   oFilme.Elenco = reader["elencoFilme"].ToString();
                   oFilme.Duracao = Convert.ToInt32(reader["duracaoFilme"].ToString());
                   oFilme.ClassifIndicativa = Convert.ToInt32(reader["classifIndicativaFilme"].ToString());
                   oFilme.UrlBanner = reader["bannerUrlFilme"].ToString();
                   oFilme.UrlTrailer = reader["trailerUrlFilme"].ToString();
                   oFilme.TpLegenda = reader["tpLegendaFilme"].ToString();
                   if (Convert.ToInt32(reader["ativoFilme"].ToString()) == 0)
                   {
                       oFilme.Ativo = false;
                   }
                   else
                   {
                       oFilme.Ativo = true;
                   }

               }

               EntConexao.FecharConexao();
           }
           return oFilme;
       }

       public List<EntFilme> BuscaPorParametro(string parametro)
       {
           List<EntFilme> lFilmes = new List<EntFilme>();

           if (EntConexao.AbrirConexao())
           {
               MySqlCommand commS = new MySqlCommand("SELECT * FROM filme where " +
                                                    " tituloFilme='" + parametro + "' ", EntConexao.bdConn);
               MySqlDataReader reader = commS.ExecuteReader();

               while (reader.Read())
               {
                   EntFilme oFilme = new EntFilme();
                   oFilme.Id = Convert.ToInt32(reader["idFilme"].ToString());
                   oFilme.Titulo = reader["tituloFilme"].ToString();
                   oFilme.Sinopse = reader["sinopseFilme"].ToString();
                   oFilme.Diretor = reader["diretorFilme"].ToString();
                   oFilme.Elenco = reader["elencoFilme"].ToString();
                   oFilme.Duracao = Convert.ToInt32(reader["duracaoFilme"].ToString());
                   oFilme.ClassifIndicativa = Convert.ToInt32(reader["classifIndicativaFilme"].ToString());
                   oFilme.UrlBanner = reader["bannerUrlFilme"].ToString();
                   oFilme.UrlTrailer = reader["trailerUrlFilme"].ToString();
                   oFilme.TpLegenda = reader["tpLegendaFilme"].ToString();
                   if (Convert.ToInt32(reader["ativoFilme"].ToString()) == 0)
                   {
                       oFilme.Ativo = false;
                   }
                   else
                   {
                       oFilme.Ativo = true;
                   }
                   lFilmes.Add(oFilme);

               }

               EntConexao.FecharConexao();
           }
           return lFilmes;
       }

       public List<EntFilme> BuscaTodas()
       {
           List<EntFilme> lFilmes = new List<EntFilme>();

           if (EntConexao.AbrirConexao())
           {
               MySqlCommand commS = new MySqlCommand("SELECT * FROM filme;", EntConexao.bdConn);
               MySqlDataReader reader = commS.ExecuteReader();

               while (reader.Read())
               {
                   EntFilme oFilme = new EntFilme();
                   oFilme.Id = Convert.ToInt32(reader["idFilme"].ToString());
                   oFilme.Titulo = reader["tituloFilme"].ToString();
                   oFilme.Sinopse = reader["sinopseFilme"].ToString();
                   oFilme.Diretor = reader["diretorFilme"].ToString();
                   oFilme.Elenco = reader["elencoFilme"].ToString();
                   oFilme.Duracao = Convert.ToInt32(reader["duracaoFilme"].ToString());
                   oFilme.ClassifIndicativa = Convert.ToInt32(reader["classifIndicativaFilme"].ToString());
                   oFilme.UrlBanner = reader["bannerUrlFilme"].ToString();
                   oFilme.UrlTrailer = reader["trailerUrlFilme"].ToString();
                   oFilme.TpLegenda = reader["tpLegendaFilme"].ToString();
                    
                        if (Convert.ToInt32(reader["ativoFilme"].ToString()) == 0)
                        {
                            oFilme.Ativo = false;
                        }else
                        {
                            oFilme.Ativo = true;
                        }
                   lFilmes.Add(oFilme);

               }

               EntConexao.FecharConexao();
           }
           return lFilmes;
       }
   }
}
